pub1ic void  Dijkstra( int v0){
        int s[]=new int[MaxVertices];
        int v,i,j,w;
        for(v=0;v<CurrentVertices;v++)
        {
        s[v]=0; //0表示还未求出最短路径*
        /* -开始假定取直达路径最短*/
        dist[v]=Edge[v0][v];
        /*直达情况下的最后经由点就是出发点*/
        if(dist[v]<MaxValue&&v!=v0)path[v]=v0;
        else path[v]=-1; /* 无直达路径*/
        }
        /*
        初始时源点v0∈s集，表示v0到v0的最短路径已经找到
        * /
        dist[v0]=0;s[v0]=1;
        for (i=1; i<CurrentVertices ;i++)
        {
      min=MaxValue;
      for (w=0; w<CurrentVertices;w++)
      /*顶点w不属于S集且离v0更近*/if(s[w]==0 && dist[w] <min) {
        V=w;.
        min=dist[w];
      }
        s[v]=1;
        for(j=0;j <CurrentVertices;j++)
        if(s[j]==0 && (min+ Edge[v] [j]<dist[j])) {
        dist[j]=min+Edge[v][j] ;
        path[j]=v;
        }
}
}

